package com.qms.qep.mapper;

import java.util.List;

import com.qms.qep.domain.Certificate;
import com.qms.qep.vo.PrintHistoryVO;

/**
 * 证书数据访问层
 */
public interface CertificateMapper {
    
    /**
     * 查询证书列表
     * 
     * @param certificate 证书查询条件
     * @return 证书集合
     */
    public List<Certificate> selectCertificateList(Certificate certificate);
    
    /**
     * 查询证书详细信息
     * 
     * @param id 证书ID
     * @return 证书
     */
    public Certificate selectCertificateById(Long id);
    
    /**
     * 根据证书编号查询证书
     * 
     * @param certificateNo 证书编号
     * @return 证书
     */
    public Certificate selectCertificateByCertificateNo(String certificateNo);
    
    /**
     * 新增证书
     * 
     * @param certificate 证书信息
     * @return 结果
     */
    public int insertCertificate(Certificate certificate);
    
    /**
     * 修改证书
     * 
     * @param certificate 证书信息
     * @return 结果
     */
    public int updateCertificate(Certificate certificate);
    
    /**
     * 删除证书
     * 
     * @param id 证书ID
     * @return 结果
     */
    public int deleteCertificateById(Long id);
    
    /**
     * 批量删除证书
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCertificateByIds(Long[] ids);
    
    /**
     * 更新证书状态
     * 
     * @param id 证书ID
     * @param status 证书状态
     * @return 结果
     */
    public int updateCertificateStatus(Long id, String status);
    
    /**
     * 插入打印历史
     * 
     * @param history 打印历史
     * @return 结果
     */
    public int insertPrintHistory(PrintHistoryVO history);
    
    /**
     * 查询证书打印历史
     * 
     * @param certificateId 证书ID
     * @return 打印历史列表
     */
    public List<PrintHistoryVO> selectPrintHistoryByCertificateId(Long certificateId);
} 